5 Way Rocker et iziBasic
Thursday 01 January 1970 - 01:00:01
Pour ce premier article je vais
vous montrer comment sous iziBasic l'on peut gerer le '5 Way Rocker' du T5. Pour
ce faire l'on va créer une applet PP, autrement dit un bout de code compilé que
l'on pourra exploiter sous iziBasic.
Requis
L'applet PP (Pascal)
Deux choix sont possible :
Les events étant une gestion difficile et fastidieuse, de plus iziBasic fait tres bien cela, nous allons donc seulement tester les touches.
Voici le code source de l'applet pp, commenté.
Donc rien de bien compliqué, seulement un accés à une api que l'on a pas sous iziBasic.
Le code iziBasic
Je vais maintenant vous montrer comment utiliser notre applet PP avec izibasic.
Je ne pense pas que le code mérite d'être commenté vu son extrème simplicité.
Conclusion
La gestion du rocker du T5 est donc des plus simple grâce aux appel de code pp. Pour gerer celui du T3, le code des touches n'est semble t'il pas le même excepté pour la touche haut et bas.
De plus en utilisant cette méthode, la gestion des events est entièrement laissé à iziBasic.
Mise à jour
Les valeurs pour les T3 sont les suivantes :
Requis
- PPShell
- pp.exe pour ARM
- PalmAPI.pas (disponible avec les exemples PP)
- iziBasic
- Savoir compiler avec PP
- Savoir compiler avec iziBasic
L'applet PP (Pascal)
Deux choix sont possible :
- Gerer entièrement tous les events en les récupérants
- Tester si une touche est appuyée
Les events étant une gestion difficile et fastidieuse, de plus iziBasic fait tres bien cela, nous allons donc seulement tester les touches.
Voici le code source de l'applet pp, commenté.
//Declaration de l'applet
type iBasFunType=function(S:string):string;
var iBasCallPP:iBasFunType;
function CallPP(S:string):string;
//On declare c en temps qu'entier non signé de 32 bits. var c:UInt32;
begin
//On recupere ici un entier non signé de 32 bits listant les touches appuyés.
c:=keyCurrentState;
//Comme les entiers long de 32 bits ne sont pas gérés ils me semble par iziBasic,
//on convertit le tout en chaine.
StrIToA(S,c);
//on defini la valeur de retour a notre chaine S qui est une variable passée en parametre de notre fonction.
CallPP:=S;
end;
begin
//L'appel à notre fonction qui retourne une chaine de caractères contenant l'etat des touches.
iBasCallPP:=CallPP;
end.
Donc rien de bien compliqué, seulement un accés à une api que l'on a pas sous iziBasic.
Le code iziBasic
Je vais maintenant vous montrer comment utiliser notre applet PP avec izibasic.
'kTouch.ibas'
BEGIN
REPEAT
A$=CALLPP$(100)
IF A$="2" PRINT "Bouton Haut"
IF A$="4" PRINT "Bouton Bas"
IF A$="524288" PRINT "Bouton Droite"
IF A$="262144" PRINT "Bouton Bas"
IF A$="1048576" PRINT "Bouton Central"
E=DOEVENTS
UNTIL E=-1
END
Je ne pense pas que le code mérite d'être commenté vu son extrème simplicité.
Conclusion
La gestion du rocker du T5 est donc des plus simple grâce aux appel de code pp. Pour gerer celui du T3, le code des touches n'est semble t'il pas le même excepté pour la touche haut et bas.
De plus en utilisant cette méthode, la gestion des events est entièrement laissé à iziBasic.
Mise à jour
Les valeurs pour les T3 sont les suivantes :
- Le bouton de droite : 33554432
- Le bouton de gauche : 16777216
- Le bouton central : 67108864